/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

 

#ifndef ApigatewayModel_h
#define ApigatewayModel_h

@interface ImportApi :NSObject

/// api接口定义
@property (strong,nonatomic,nonnull)  NSString*  apiDefine;


-(id) initWithApiDefine:(NSString*) apiDefine;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BackendParameter :NSObject

/// 后端名称
@property (strong,nonatomic,nonnull)  NSString*  backendName;

/// 后端参数位置
@property (strong,nonatomic,nonnull)  NSString*  backendParamLocation;

/// 入参名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 入参位置
@property (strong,nonatomic,nonnull)  NSString*  paramLocation;

/// 入参类型
@property (strong,nonatomic,nonnull)  NSString*  paramType;


-(id) initWithBackendName:(NSString*) backendName
    backendParamLocation:(NSString*)backendParamLocation
    name:(NSString*)name
    paramLocation:(NSString*)paramLocation
    paramType:(NSString*)paramType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DebugReturnMessage :NSObject

/// 请求地址
@property (strong,nonatomic,nonnull)  NSString*  requestUrl;

/// request中header信息
@property (strong,nonatomic,nonnull)  NSString*  requestHeader;

/// request中body信息
@property (strong,nonatomic,nonnull)  NSString*  requestBody;

/// 响应状态码
@property (strong,nonatomic,nonnull)  NSString*  responseCodeStatus;

/// header返回值
@property (strong,nonatomic,nonnull)  NSString*  responseHeaderValue;

/// body返回值
@property (strong,nonatomic,nonnull)  NSString*  responseBody;


-(id) initWithRequestUrl:(NSString*) requestUrl
    requestHeader:(NSString*)requestHeader
    requestBody:(NSString*)requestBody
    responseCodeStatus:(NSString*)responseCodeStatus
    responseHeaderValue:(NSString*)responseHeaderValue
    responseBody:(NSString*)responseBody;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ModifyApi :NSObject

/// waf状态，如：observe,deny,off
@property (strong,nonatomic,nonnull)  NSString*  wafStatus;


-(id) initWithWafStatus:(NSString*) wafStatus;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Parameter :NSObject

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 参数位置
@property (strong,nonatomic,nonnull)  NSString*  paramLocation;

/// 参数类型
@property (strong,nonatomic,nonnull)  NSString*  paramType;

/// 默认值
@property (strong,nonatomic,nonnull)  NSString*  defaultValue;

/// 默认值
@property (strong,nonatomic,nonnull)  NSNumber*  isRequired;


-(id) initWithName:(NSString*) name
    descriptionValue:(NSString*)descriptionValue
    paramLocation:(NSString*)paramLocation
    paramType:(NSString*)paramType
    defaultValue:(NSString*)defaultValue
    isRequired:(NSNumber*)isRequired;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface HufuApi :NSObject

/// API ID
@property (strong,nonatomic,nonnull)  NSString*  apiId;

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// api状态
@property (strong,nonatomic,nonnull)  NSString*  apiStatus;

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  apiName;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 应用类型ID,云鼎业务线专用
@property (strong,nonatomic,nonnull)  NSNumber*  hufuAppTypeId;


-(id) initWithApiId:(NSString*) apiId
    apiGroupId:(NSString*)apiGroupId
    apiStatus:(NSString*)apiStatus
    apiName:(NSString*)apiName
    descriptionValue:(NSString*)descriptionValue
    hufuAppTypeId:(NSNumber*)hufuAppTypeId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DebugApi :NSObject

/// assessKey：京东云用户、API调用者、订阅密钥key
@property (strong,nonatomic,nonnull)  NSString*  assessKey;

/// secretKey：京东云用户、API调用者
@property (strong,nonatomic,nonnull)  NSString*  secretKey;

/// 请求host
@property (strong,nonatomic,nonnull)  NSString*  host;

/// 请求uri,分组路径前缀+API请求路径，如：/todo/api/v1/creatApi
@property (strong,nonatomic,nonnull)  NSString*  uri;

/// 请求方式
@property (strong,nonatomic,nonnull)  NSString*  method;

/// 访问授权方式：None（免鉴权）,jd_cloud（京东云用户），jd_apikms（API调用者），jd_subscription_key（订阅密钥）
@property (strong,nonatomic,nonnull)  NSString*  authType;

/// api所属region
@property (strong,nonatomic,nonnull)  NSString*  region;

/// query参数，用&amp;分隔，如：id&#x3D;1&amp;version&#x3D;v1
@property (strong,nonatomic,nonnull)  NSString*  queryString;

/// body参数，传json字符串的base64编码，例如body的值为：{&quot;title&quot;:&quot;desk&quot;,&quot;desc&quot;:&quot;cheap&quot;}，应传值为：&quot;eyJ0aXRsZSI6ImRlc2siLCJkZXNjIjoiY2hlYXAifQ&#x3D;&#x3D;&quot;
@property (strong,nonatomic,nonnull)  NSString*  body;

/// 请求格式类型,1:application/json,2:text/xml,3:其他
@property (strong,nonatomic,nonnull)  NSString*  reqBodyType;

/// 请求格式类型,当reqBodyType等于3时,使用该请求格式类型
@property (strong,nonatomic,nonnull)  NSString*  editableReqBodyType;

/// header参数，传json字符串
@property (strong,nonatomic,nonnull)  NSString*  headerString;

/// 发布的环境信息，如：online,preview,test
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 是否API产品, 1为是
@property (strong,nonatomic,nonnull)  NSString*  isApiProduct;


-(id) initWithAssessKey:(NSString*) assessKey
    secretKey:(NSString*)secretKey
    host:(NSString*)host
    uri:(NSString*)uri
    method:(NSString*)method
    authType:(NSString*)authType
    region:(NSString*)region
    queryString:(NSString*)queryString
    body:(NSString*)body
    reqBodyType:(NSString*)reqBodyType
    editableReqBodyType:(NSString*)editableReqBodyType
    headerString:(NSString*)headerString
    environment:(NSString*)environment
    isApiProduct:(NSString*)isApiProduct;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface PinAuthManage :NSObject

/// 被管理用户的名称
@property (strong,nonatomic,nonnull)  NSString*  subordinatesName;

/// 被管理用户的pin
@property (strong,nonatomic,nonnull)  NSString*  subordinatesPin;


-(id) initWithSubordinatesName:(NSString*) subordinatesName
    subordinatesPin:(NSString*)subordinatesPin;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Deploy :NSObject

/// 发布的修订版本号
@property (strong,nonatomic,nonnull)  NSString*  revision;

/// 环境：test、preview、online
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 后端服务类型：mock、unique、vpc
@property (strong,nonatomic,nonnull)  NSString*  backendServiceType;

/// 后端地址
@property (strong,nonatomic,nonnull)  NSString*  backendUrl;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 微服务网关名称
@property (strong,nonatomic,nonnull)  NSString*  jdsfName;

/// 微服务注册中心ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegistryName;

/// 微服务ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfId;


-(id) initWithRevision:(NSString*) revision
    environment:(NSString*)environment
    backendServiceType:(NSString*)backendServiceType
    backendUrl:(NSString*)backendUrl
    descriptionValue:(NSString*)descriptionValue
    jdsfName:(NSString*)jdsfName
    jdsfRegistryName:(NSString*)jdsfRegistryName
    jdsfId:(NSString*)jdsfId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Deployment :NSObject

/// 部署ID
@property (strong,nonatomic,nonnull)  NSString*  deploymentId;

/// 发布的修订版本号
@property (strong,nonatomic,nonnull)  NSString*  revision;

/// 路径
@property (strong,nonatomic,nonnull)  NSString*  path;

/// 环境：test、preview、online
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 后端服务类型：mock、unique、vpc
@property (strong,nonatomic,nonnull)  NSString*  backendServiceType;

/// 后端地址
@property (strong,nonatomic,nonnull)  NSString*  backendUrl;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 发布日期，格式为毫秒级时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// 微服务网关名称
@property (strong,nonatomic,nonnull)  NSString*  jdsfName;

/// 微服务注册中心ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegistryName;

/// 微服务ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfId;


-(id) initWithDeploymentId:(NSString*) deploymentId
    revision:(NSString*)revision
    path:(NSString*)path
    environment:(NSString*)environment
    backendServiceType:(NSString*)backendServiceType
    backendUrl:(NSString*)backendUrl
    descriptionValue:(NSString*)descriptionValue
    createTime:(NSNumber*)createTime
    jdsfName:(NSString*)jdsfName
    jdsfRegistryName:(NSString*)jdsfRegistryName
    jdsfId:(NSString*)jdsfId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ApiProduct :NSObject

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 版本号
@property (strong,nonatomic,nonnull)  NSString*  version;

/// 区域
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// 计价方式
@property (strong,nonatomic,nonnull)  NSString*  price;

/// 发布日期，格式为毫秒级时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  deploymentDate;

/// 购买状态，1已购买，0未购买
@property (strong,nonatomic,nonnull)  NSNumber*  isBuyed;

/// 发布日期，格式为毫秒级时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  buyDate;


-(id) initWithApiGroupId:(NSString*) apiGroupId
    groupName:(NSString*)groupName
    descriptionValue:(NSString*)descriptionValue
    version:(NSString*)version
    regionId:(NSString*)regionId
    price:(NSString*)price
    deploymentDate:(NSNumber*)deploymentDate
    isBuyed:(NSNumber*)isBuyed
    buyDate:(NSNumber*)buyDate;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Function :NSObject

/// 函数名称
@property (strong,nonatomic,nonnull)  NSString*  functionName;

/// 函数版本名称
@property (strong,nonatomic,nonnull)  NSString*  versionName;


-(id) initWithFunctionName:(NSString*) functionName
    versionName:(NSString*)versionName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface FuntionApi :NSObject

/// 接口ID
@property (strong,nonatomic,nonnull)  NSString*  apiId;

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 分组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 修订版本号
@property (strong,nonatomic,nonnull)  NSString*  revision;

/// API名称
@property (strong,nonatomic,nonnull)  NSString*  apiName;

/// 请求方式
@property (strong,nonatomic,nonnull)  NSString*  action;

/// 请求路径，同时发布多个环境后会有多个路径
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  path;

/// API描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 部署状态(1:已部署)
@property (strong,nonatomic,nonnull)  NSNumber*  deploymentStatus;


-(id) initWithApiId:(NSString*) apiId
    apiGroupId:(NSString*)apiGroupId
    groupName:(NSString*)groupName
    revision:(NSString*)revision
    apiName:(NSString*)apiName
    action:(NSString*)action
    path:(NSArray<NSString*>*)path
    descriptionValue:(NSString*)descriptionValue
    deploymentStatus:(NSNumber*)deploymentStatus;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Formula :NSObject

/// key
@property (strong,nonatomic,nonnull)  NSString*  key;

/// value
@property (strong,nonatomic,nonnull)  NSString*  value;

/// 单位
@property (strong,nonatomic,nonnull)  NSString*  unit;


-(id) initWithKey:(NSString*) key
    value:(NSString*)value
    unit:(NSString*)unit;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RateLimitPolicy :NSObject

/// 策略id
@property (strong,nonatomic,nonnull)  NSString*  policyId;

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;

/// 时间单位
@property (strong,nonatomic,nonnull)  NSString*  timeUnit;

/// api流量限制次数
@property (strong,nonatomic,nonnull)  NSNumber*  apiLimitCount;

/// 用户流量限制次数
@property (strong,nonatomic,nonnull)  NSNumber*  userLimitCount;

/// 应用流量限制次数
@property (strong,nonatomic,nonnull)  NSNumber*  appLimitCount;

/// 用户ID
@property (strong,nonatomic,nonnull)  NSString*  userId;

/// 用户名
@property (strong,nonatomic,nonnull)  NSString*  pin;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 绑定分组，以逗号隔开的分组id存储，以逗号隔开的分组name返回
@property (strong,nonatomic,nonnull)  NSString*  bindGroups;


-(id) initWithPolicyId:(NSString*) policyId
    policyName:(NSString*)policyName
    timeUnit:(NSString*)timeUnit
    apiLimitCount:(NSNumber*)apiLimitCount
    userLimitCount:(NSNumber*)userLimitCount
    appLimitCount:(NSNumber*)appLimitCount
    userId:(NSString*)userId
    pin:(NSString*)pin
    descriptionValue:(NSString*)descriptionValue
    bindGroups:(NSString*)bindGroups;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RateLimitPolicyView :NSObject

/// 策略名称
@property (strong,nonatomic,nonnull)  NSString*  policyName;

/// 时间单位
@property (strong,nonatomic,nonnull)  NSString*  timeUnit;

/// api流量限制次数
@property (strong,nonatomic,nonnull)  NSNumber*  apiLimitCount;

/// 用户流量限制次数
@property (strong,nonatomic,nonnull)  NSNumber*  userLimitCount;

/// 应用流量限制次数
@property (strong,nonatomic,nonnull)  NSNumber*  appLimitCount;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;


-(id) initWithPolicyName:(NSString*) policyName
    timeUnit:(NSString*)timeUnit
    apiLimitCount:(NSNumber*)apiLimitCount
    userLimitCount:(NSNumber*)userLimitCount
    appLimitCount:(NSNumber*)appLimitCount
    descriptionValue:(NSString*)descriptionValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SimpleParameter :NSObject

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 值
@property (strong,nonatomic,nonnull)  NSString*  value;


-(id) initWithName:(NSString*) name
    value:(NSString*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RevisionList :NSObject

/// 版本Id
@property (strong,nonatomic,nonnull)  NSString*  revisionId;

/// 修订版本号
@property (strong,nonatomic,nonnull)  NSString*  revision;

/// 基于此版本
@property (strong,nonatomic,nonnull)  NSString*  baseRevision;

/// 发布环境
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 修订日期
@property (strong,nonatomic,nonnull)  NSString*  createdAt;

/// 修订备注
@property (strong,nonatomic,nonnull)  NSString*  revisionNote;


-(id) initWithRevisionId:(NSString*) revisionId
    revision:(NSString*)revision
    baseRevision:(NSString*)baseRevision
    environment:(NSString*)environment
    createdAt:(NSString*)createdAt
    revisionNote:(NSString*)revisionNote;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateRevision :NSObject

/// 修订版本号，如果创建版本时传回修订版本，此为必填项
@property (strong,nonatomic,nonnull)  NSString*  revision;

/// 基于此版本，如果创建版本时传回修订版本，此为必填项
@property (strong,nonatomic,nonnull)  NSString*  baseRevision;

/// 修订备注
@property (strong,nonatomic,nonnull)  NSString*  revisionNote;


-(id) initWithRevision:(NSString*) revision
    baseRevision:(NSString*)baseRevision
    revisionNote:(NSString*)revisionNote;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateRevision :NSObject

/// 修订备注
@property (strong,nonatomic,nonnull)  NSString*  revisionNote;


-(id) initWithRevisionNote:(NSString*) revisionNote;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UcAccessKey :NSObject

/// 密钥转态
@property (strong,nonatomic,nonnull)  NSString*  accessKeyStatus;

/// Access Key
@property (strong,nonatomic,nonnull)  NSString*  accessKey;


-(id) initWithAccessKeyStatus:(NSString*) accessKeyStatus
    accessKey:(NSString*)accessKey;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface KeyInfo :NSObject

/// userid
@property (strong,nonatomic,nonnull)  NSString*  userId;

/// keyid
@property (strong,nonatomic,nonnull)  NSString*  keyId;

/// keyname
@property (strong,nonatomic,nonnull)  NSString*  keyName;

/// ak
@property (strong,nonatomic,nonnull)  NSString*  accessKey;

/// sk
@property (strong,nonatomic,nonnull)  NSString*  secretKey;

/// key描述信息
@property (strong,nonatomic,nonnull)  NSString*  keyDesc;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;


-(id) initWithUserId:(NSString*) userId
    keyId:(NSString*)keyId
    keyName:(NSString*)keyName
    accessKey:(NSString*)accessKey
    secretKey:(NSString*)secretKey
    keyDesc:(NSString*)keyDesc
    createTime:(NSString*)createTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateApiGroup :NSObject

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 分组路径前缀，无需添加/
@property (strong,nonatomic,nonnull)  NSString*  prefix;

/// 密钥验证方式：check_exist（密钥必须在访问授权中已配置）、no_check_exist（无需事先配置）
@property (strong,nonatomic,nonnull)  NSString*  keyCheck;

/// 访问授权方式：None（免鉴权）、jd_cloud（开启访问授权，且必须使用京东云的AK、SK验签）、hufu（虎符用户）
@property (strong,nonatomic,nonnull)  NSString*  authType;

/// 是否转发分组路径到后端服务：0（不转发）、1（转发）默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  prefixStrip;

/// 分组类型：api_group（api分组）、jdsf_group（微服务分组）默认为 api_group
@property (strong,nonatomic,nonnull)  NSString*  groupType;

/// 微服务网关名称
@property (strong,nonatomic,nonnull)  NSString*  jdsfName;

/// 微服务注册中心ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegistryName;

/// 微服务网关ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfId;


-(id) initWithGroupName:(NSString*) groupName
    descriptionValue:(NSString*)descriptionValue
    prefix:(NSString*)prefix
    keyCheck:(NSString*)keyCheck
    authType:(NSString*)authType
    prefixStrip:(NSNumber*)prefixStrip
    groupType:(NSString*)groupType
    jdsfName:(NSString*)jdsfName
    jdsfRegistryName:(NSString*)jdsfRegistryName
    jdsfId:(NSString*)jdsfId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ApiGroupMonitor :NSObject

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 分组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 后端服务地址
@property (strong,nonatomic,nonnull)  NSString*  backendUrl;

/// 分组路径
@property (strong,nonatomic,nonnull)  NSString*  groupPath;

/// 版本号
@property (strong,nonatomic,nonnull)  NSString*  version;

/// API总数
@property (strong,nonatomic,nonnull)  NSString*  apiCount;

/// 发布日期，格式为毫秒级时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  deploymentDate;


-(id) initWithApiGroupId:(NSString*) apiGroupId
    groupName:(NSString*)groupName
    backendUrl:(NSString*)backendUrl
    groupPath:(NSString*)groupPath
    version:(NSString*)version
    apiCount:(NSString*)apiCount
    deploymentDate:(NSNumber*)deploymentDate;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ApiGroupMonitorDetail :NSObject

/// 分组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 后端服务地址
@property (strong,nonatomic,nonnull)  NSString*  backendUrl;

/// 分组路径
@property (strong,nonatomic,nonnull)  NSString*  groupPath;

/// 版本号
@property (strong,nonatomic,nonnull)  NSString*  version;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 发布日期，格式为毫秒级时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  deploymentDate;


-(id) initWithGroupName:(NSString*) groupName
    backendUrl:(NSString*)backendUrl
    groupPath:(NSString*)groupPath
    version:(NSString*)version
    descriptionValue:(NSString*)descriptionValue
    deploymentDate:(NSNumber*)deploymentDate;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateApiGroup :NSObject

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 分组路径前缀
@property (strong,nonatomic,nonnull)  NSString*  prefix;

/// 密钥验证方式：check_exist（密钥必须在访问授权中已配置）、no_check_exist（无需事先配置）
@property (strong,nonatomic,nonnull)  NSString*  keyCheck;

/// 访问授权方式：None（免鉴权）、jd_cloud（开启访问授权，且必须使用京东云的AK、SK验签）、hufu（虎符用户）
@property (strong,nonatomic,nonnull)  NSString*  authType;

/// 是否转发分组路径到后端服务：0（不转发）、1（转发）默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  prefixStrip;

/// 分组类型：api_group（api分组）、jdsf_group（微服务分组）默认为 api_group
@property (strong,nonatomic,nonnull)  NSString*  groupType;

/// 微服务网关名称
@property (strong,nonatomic,nonnull)  NSString*  jdsfName;

/// 微服务注册中心ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegistryName;

/// 微服务网关ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfId;


-(id) initWithGroupName:(NSString*) groupName
    descriptionValue:(NSString*)descriptionValue
    prefix:(NSString*)prefix
    keyCheck:(NSString*)keyCheck
    authType:(NSString*)authType
    prefixStrip:(NSNumber*)prefixStrip
    groupType:(NSString*)groupType
    jdsfName:(NSString*)jdsfName
    jdsfRegistryName:(NSString*)jdsfRegistryName
    jdsfId:(NSString*)jdsfId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ApiGroupCount :NSObject

/// 网关ID
@property (strong,nonatomic,nonnull)  NSString*  gatewayId;

/// 分组数量
@property (strong,nonatomic,nonnull)  NSNumber*  count;


-(id) initWithGatewayId:(NSString*) gatewayId
    count:(NSNumber*)count;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BindApiGroup :NSObject

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 分组路径前缀
@property (strong,nonatomic,nonnull)  NSString*  prefix;

/// 版本号
@property (strong,nonatomic,nonnull)  NSString*  version;

/// 区域
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// 域名
@property (strong,nonatomic,nonnull)  NSString*  domain;

/// 网关绑定分组的环境信息
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 密钥验证方式：check_exist（密钥必须在访问授权中已配置）、no_check_exist（无需事先配置）
@property (strong,nonatomic,nonnull)  NSString*  keyCheck;

/// 访问授权方式：None（免鉴权）、jd_cloud（开启访问授权，且必须使用京东云的AK、SK验签）、hufu（虎符用户）
@property (strong,nonatomic,nonnull)  NSString*  authType;

/// 是否转发分组路径到后端服务：0（不转发）、1（转发）
@property (strong,nonatomic,nonnull)  NSNumber*  prefixStrip;

/// 分组类型：api_group（api分组）、jdsf_group（微服务分组）
@property (strong,nonatomic,nonnull)  NSString*  groupType;

/// 微服务网关名称
@property (strong,nonatomic,nonnull)  NSString*  jdsfName;

/// 微服务注册中心ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegistryName;

/// 微服务网关ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfId;

/// 分组是否已发布：0（未发布）、1（发布）
@property (strong,nonatomic,nonnull)  NSNumber*  deploy;


-(id) initWithApiGroupId:(NSString*) apiGroupId
    groupName:(NSString*)groupName
    descriptionValue:(NSString*)descriptionValue
    prefix:(NSString*)prefix
    version:(NSString*)version
    regionId:(NSString*)regionId
    domain:(NSString*)domain
    environment:(NSString*)environment
    keyCheck:(NSString*)keyCheck
    authType:(NSString*)authType
    prefixStrip:(NSNumber*)prefixStrip
    groupType:(NSString*)groupType
    jdsfName:(NSString*)jdsfName
    jdsfRegistryName:(NSString*)jdsfRegistryName
    jdsfId:(NSString*)jdsfId
    deploy:(NSNumber*)deploy;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface GenerateInfo :NSObject

/// 语言
@property (strong,nonatomic,nonnull)  NSString*  language;

/// 文件状态,0:未生成，1:生成中，2:生成完成
@property (strong,nonatomic,nonnull)  NSNumber*  fileStatus;

/// 下载地址
@property (strong,nonatomic,nonnull)  NSString*  fileUrl;


-(id) initWithLanguage:(NSString*) language
    fileStatus:(NSNumber*)fileStatus
    fileUrl:(NSString*)fileUrl;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BindedGroup :NSObject

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 区域
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 环境
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 授权时间
@property (strong,nonatomic,nonnull)  NSString*  bindedTime;


-(id) initWithApiGroupId:(NSString*) apiGroupId
    groupName:(NSString*)groupName
    region:(NSString*)region
    environment:(NSString*)environment
    bindedTime:(NSString*)bindedTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ApiGroupEx :NSObject

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 区域
@property (strong,nonatomic,nonnull)  NSString*  regionId;


-(id) initWithApiGroupId:(NSString*) apiGroupId
    groupName:(NSString*)groupName
    regionId:(NSString*)regionId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ApiGroup :NSObject

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 分组路径前缀
@property (strong,nonatomic,nonnull)  NSString*  prefix;

/// 版本号
@property (strong,nonatomic,nonnull)  NSString*  version;

/// 区域
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// 域名
@property (strong,nonatomic,nonnull)  NSString*  domain;

/// 发布环境信息，若为空或null，则未发布
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 密钥验证方式：check_exist（密钥必须在访问授权中已配置）、no_check_exist（无需事先配置）
@property (strong,nonatomic,nonnull)  NSString*  keyCheck;

/// 访问授权方式：None（免鉴权）、jd_cloud（开启访问授权，且必须使用京东云的AK、SK验签）、hufu（虎符用户）
@property (strong,nonatomic,nonnull)  NSString*  authType;

/// 是否转发分组路径到后端服务：0（不转发）、1（转发）
@property (strong,nonatomic,nonnull)  NSNumber*  prefixStrip;

/// 分组类型：api_group（api分组）、jdsf_group（微服务分组）
@property (strong,nonatomic,nonnull)  NSString*  groupType;

/// 微服务网关名称
@property (strong,nonatomic,nonnull)  NSString*  jdsfName;

/// 微服务注册中心ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegistryName;

/// 微服务网关ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfId;

/// 分组是否已发布：0（未发布）、1（发布）
@property (strong,nonatomic,nonnull)  NSNumber*  deploy;


-(id) initWithApiGroupId:(NSString*) apiGroupId
    groupName:(NSString*)groupName
    descriptionValue:(NSString*)descriptionValue
    prefix:(NSString*)prefix
    version:(NSString*)version
    regionId:(NSString*)regionId
    domain:(NSString*)domain
    environment:(NSString*)environment
    keyCheck:(NSString*)keyCheck
    authType:(NSString*)authType
    prefixStrip:(NSNumber*)prefixStrip
    groupType:(NSString*)groupType
    jdsfName:(NSString*)jdsfName
    jdsfRegistryName:(NSString*)jdsfRegistryName
    jdsfId:(NSString*)jdsfId
    deploy:(NSNumber*)deploy;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdateGroupVpcPathModel :NSObject

/// 微服务网关ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfGwId;

/// vpc内ip:port,如：192.168.1.2:8000
@property (strong,nonatomic,nonnull)  NSString*  vpcPath;


-(id) initWithJdsfGwId:(NSString*) jdsfGwId
    vpcPath:(NSString*)vpcPath;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BindJdsfGroup :NSObject

/// 微服务网关名称
@property (strong,nonatomic,nonnull)  NSString*  jdsfName;

/// 微服务注册中心ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegistryName;

/// 环境信息
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 微服务网关ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfId;

/// VPC类型时，传vpc对应的IP:port
@property (strong,nonatomic,nonnull)  NSString*  jdsfParam;

/// 微服务网关region ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegion;

/// 分组类型：api_group（api分组）、jdsf_group（微服务分组）默认api_group
@property (strong,nonatomic,nonnull)  NSString*  groupType;


-(id) initWithJdsfName:(NSString*) jdsfName
    jdsfRegistryName:(NSString*)jdsfRegistryName
    environment:(NSString*)environment
    jdsfId:(NSString*)jdsfId
    jdsfParam:(NSString*)jdsfParam
    jdsfRegion:(NSString*)jdsfRegion
    groupType:(NSString*)groupType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DomainInfo :NSObject

/// api分组id
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 域名id
@property (strong,nonatomic,nonnull)  NSString*  domainId;

/// 域名
@property (strong,nonatomic,nonnull)  NSString*  domain;

/// 解析的cname
@property (strong,nonatomic,nonnull)  NSString*  cname;

/// 域名使用的协议
@property (strong,nonatomic,nonnull)  NSString*  protocol;

/// 域名创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 域名状态
@property (strong,nonatomic,nonnull)  NSString*  status;


-(id) initWithApiGroupId:(NSString*) apiGroupId
    domainId:(NSString*)domainId
    domain:(NSString*)domain
    cname:(NSString*)cname
    protocol:(NSString*)protocol
    createTime:(NSString*)createTime
    status:(NSString*)status;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
 
@interface ChargeAuth :NSObject

/// 用户pin
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// 资源的uuid
@property (strong,nonatomic,nonnull)  NSString*  resourceId;


-(id) initWithUserPin:(NSString*) userPin
    resourceId:(NSString*)resourceId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateAccessKey :NSObject

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 密钥类型
@property (strong,nonatomic,nonnull)  NSString*  accessKeyType;

/// Access Key
@property (strong,nonatomic,nonnull)  NSString*  accessKey;


-(id) initWithDescription:(NSString*) descriptionValue
    accessKeyType:(NSString*)accessKeyType
    accessKey:(NSString*)accessKey;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BindGroups :NSObject

/// 部署ID
@property (strong,nonatomic,nonnull)  NSString*  deploymentId;

/// 分组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 环境：test、preview、online
@property (strong,nonatomic,nonnull)  NSString*  environment;


-(id) initWithDeploymentId:(NSString*) deploymentId
    groupName:(NSString*)groupName
    environment:(NSString*)environment;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface AccessAuth :NSObject

/// 访问授权ID
@property (strong,nonatomic,nonnull)  NSString*  accessAuthId;

/// 授权用户类型
@property (strong,nonatomic,nonnull)  NSString*  authUserType;

/// Access Key
@property (strong,nonatomic,nonnull)  NSString*  accessKey;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 绑定分组,用英文逗号分隔
@property (strong,nonatomic,nonnull)  NSString*  bindGroups;

/// api调用者的appid
@property (strong,nonatomic,nonnull)  NSString*  appId;


-(id) initWithAccessAuthId:(NSString*) accessAuthId
    authUserType:(NSString*)authUserType
    accessKey:(NSString*)accessKey
    descriptionValue:(NSString*)descriptionValue
    bindGroups:(NSString*)bindGroups
    appId:(NSString*)appId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UserBindedGroups :NSObject

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 分组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 区域
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 授权时间
@property (strong,nonatomic,nonnull)  NSString*  authtime;

/// 授权用户类型
@property (strong,nonatomic,nonnull)  NSString*  authUserType;

/// Access Key
@property (strong,nonatomic,nonnull)  NSString*  accessKey;

/// api调用者的appid
@property (strong,nonatomic,nonnull)  NSString*  appId;

/// api部署的环境
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// api版本
@property (strong,nonatomic,nonnull)  NSString*  revision;


-(id) initWithApiGroupId:(NSString*) apiGroupId
    groupName:(NSString*)groupName
    region:(NSString*)region
    authtime:(NSString*)authtime
    authUserType:(NSString*)authUserType
    accessKey:(NSString*)accessKey
    appId:(NSString*)appId
    environment:(NSString*)environment
    revision:(NSString*)revision;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface AccessAuthView :NSObject

/// 授权用户类型
@property (strong,nonatomic,nonnull)  NSString*  authUserType;

/// Access Key
@property (strong,nonatomic,nonnull)  NSString*  accessKey;

/// 待绑定的部署ids逗号隔开
@property (strong,nonatomic,nonnull)  NSString*  deploymentIds;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;


-(id) initWithAuthUserType:(NSString*) authUserType
    accessKey:(NSString*)accessKey
    deploymentIds:(NSString*)deploymentIds
    descriptionValue:(NSString*)descriptionValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateSubscriptionKey :NSObject

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 密钥名称
@property (strong,nonatomic,nonnull)  NSString*  name;


-(id) initWithDescription:(NSString*) descriptionValue
    name:(NSString*)name;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

@interface ApiBackendConfig :NSObject

/// 后端路径
@property (strong,nonatomic,nonnull)  NSString*  backendPath;

/// 后端请求方式
@property (strong,nonatomic,nonnull)  NSString*  backendAction;

/// 后端参数列表
@property (strong,nonatomic,nonnull)  NSArray<BackendParameter*>*  backendParams;

/// 后端常量参数列表
@property (strong,nonatomic,nonnull)  NSArray<Parameter*>*  backendConstParams;


-(id) initWithBackendPath:(NSString*) backendPath
    backendAction:(NSString*)backendAction
    backendParams:(NSArray<BackendParameter*>*)backendParams
    backendConstParams:(NSArray<Parameter*>*)backendConstParams;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end


@interface CreateApi :NSObject

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  apiName;

/// 动作
@property (strong,nonatomic,nonnull)  NSString*  action;

/// 请求路径
@property (strong,nonatomic,nonnull)  NSString*  path;

/// 匹配模式：1.&quot;absolute&quot;(绝对匹配); 2.&quot;prefix&quot;（前缀匹配）;
@property (strong,nonatomic,nonnull)  NSString*  matchType;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 请求参数列表
@property (strong,nonatomic,nonnull)  NSArray<Parameter*>*  reqParams;

/// 请求格式
@property (strong,nonatomic,nonnull)  NSString*  reqBody;

/// 返回格式
@property (strong,nonatomic,nonnull)  NSString*  resBody;

/// 请求格式类型,1:application/json,2:text/xml,3:其他
@property (strong,nonatomic,nonnull)  NSNumber*  reqBodyType;

/// 返回格式类型,1:application/json,2:text/xml,3:其他
@property (strong,nonatomic,nonnull)  NSNumber*  resBodyType;

/// api后端配置
@property (strong,nonatomic,nonnull)  ApiBackendConfig*  apiBackendConfig;

/// 后端服务类型，如HTTP/HTTPS,mock,funcion等
@property (strong,nonatomic,nonnull)  NSString*  backServiceType;

/// 后端服务地址，如后端服务地址，funtion路径等
@property (strong,nonatomic,nonnull)  NSString*  backServicePath;

/// 后端服务ID，如函数ID等
@property (strong,nonatomic,nonnull)  NSString*  backServiceId;

/// 后端服务名称，如函数名称
@property (strong,nonatomic,nonnull)  NSString*  backServiceName;

/// 后端地址
@property (strong,nonatomic,nonnull)  NSString*  backUrl;

/// 后端服务配置，为true时，采用与分组统一的配置，初始创建api时请设置为True。
@property (strong,nonatomic,nonnull)  NSNumber*  backServiceConfig;

/// 后端服务版本，如函数版本名称
@property (strong,nonatomic,nonnull)  NSString*  backServiceVersion;

/// 应用类型ID,云鼎业务线专用
@property (strong,nonatomic,nonnull)  NSNumber*  hufuAppTypeId;

/// 请求格式类型,当reqBodyType等于3时,使用该请求格式类型
@property (strong,nonatomic,nonnull)  NSString*  editableReqBodyType;

/// 响应格式类型,当resBodyType等于3时,使用该响应格式类型
@property (strong,nonatomic,nonnull)  NSString*  editableResBodyType;


-(id) initWithApiGroupId:(NSString*) apiGroupId
    apiName:(NSString*)apiName
    action:(NSString*)action
    path:(NSString*)path
    matchType:(NSString*)matchType
    descriptionValue:(NSString*)descriptionValue
    reqParams:(NSArray<Parameter*>*)reqParams
    reqBody:(NSString*)reqBody
    resBody:(NSString*)resBody
    reqBodyType:(NSNumber*)reqBodyType
    resBodyType:(NSNumber*)resBodyType
    apiBackendConfig:(ApiBackendConfig*)apiBackendConfig
    backServiceType:(NSString*)backServiceType
    backServicePath:(NSString*)backServicePath
    backServiceId:(NSString*)backServiceId
    backServiceName:(NSString*)backServiceName
    backUrl:(NSString*)backUrl
    backServiceConfig:(NSNumber*)backServiceConfig
    backServiceVersion:(NSString*)backServiceVersion
    hufuAppTypeId:(NSNumber*)hufuAppTypeId
    editableReqBodyType:(NSString*)editableReqBodyType
    editableResBodyType:(NSString*)editableResBodyType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end
@interface ApiChargeSpec :NSObject

/// API ID
@property (strong,nonatomic,nonnull)  NSString*  apiId;

/// 计费项
@property (strong,nonatomic,nonnull)  NSArray<Formula*>*  formulas;


-(id) initWithApiId:(NSString*) apiId
    formulas:(NSArray<Formula*>*)formulas;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ApiChargeSpecView :NSObject

/// appCode
@property (strong,nonatomic,nonnull)  NSString*  appCode;

/// serviceCode
@property (strong,nonatomic,nonnull)  NSString*  serviceCode;

/// api中心展示，1展示，0 不展示 默认不展示
@property (strong,nonatomic,nonnull)  NSNumber*  showStatus;

/// 计费类型 0 标准计费 1 阶梯计费
@property (strong,nonatomic,nonnull)  NSNumber*  chargeType;

/// 计费方式 0 200请求计费 1 后端处理计费
@property (strong,nonatomic,nonnull)  NSNumber*  accessSuccessType;

/// 请求参数列表
@property (strong,nonatomic,nonnull)  NSArray<ApiChargeSpec*>*  apiChargeSpecs;


-(id) initWithAppCode:(NSString*) appCode
    serviceCode:(NSString*)serviceCode
    showStatus:(NSNumber*)showStatus
    chargeType:(NSNumber*)chargeType
    accessSuccessType:(NSNumber*)accessSuccessType
    apiChargeSpecs:(NSArray<ApiChargeSpec*>*)apiChargeSpecs;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UpdatebackendConfig :NSObject

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  baseGroupId;

/// 环境：test、preview、online
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 后端地址
@property (strong,nonatomic,nonnull)  NSString*  backendUrl;

/// 后端服务类型：mock、HTTP/HTTPS
@property (strong,nonatomic,nonnull)  NSString*  backendServiceType;

/// header参数列表
@property (strong,nonatomic,nonnull)  NSArray<SimpleParameter*>*  headerParams;

/// query参数列表
@property (strong,nonatomic,nonnull)  NSArray<SimpleParameter*>*  queryParams;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 发布日期，格式为毫秒级时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// 排序，赋值0时为默认的后端配置
@property (strong,nonatomic,nonnull)  NSNumber*  sort;

/// 排序，用于展示使用
@property (strong,nonatomic,nonnull)  NSNumber*  userSort;

/// vpc网关id
@property (strong,nonatomic,nonnull)  NSString*  jdsfId;

/// vpc后端地址
@property (strong,nonatomic,nonnull)  NSString*  jdsfParam;

/// vpc网关所属region
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegion;

/// vpc网关创建者的pin
@property (strong,nonatomic,nonnull)  NSString*  jdsfPin;


-(id) initWithBaseGroupId:(NSString*) baseGroupId
    environment:(NSString*)environment
    backendUrl:(NSString*)backendUrl
    backendServiceType:(NSString*)backendServiceType
    headerParams:(NSArray<SimpleParameter*>*)headerParams
    queryParams:(NSArray<SimpleParameter*>*)queryParams
    descriptionValue:(NSString*)descriptionValue
    createTime:(NSNumber*)createTime
    sort:(NSNumber*)sort
    userSort:(NSNumber*)userSort
    jdsfId:(NSString*)jdsfId
    jdsfParam:(NSString*)jdsfParam
    jdsfRegion:(NSString*)jdsfRegion
    jdsfPin:(NSString*)jdsfPin;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface BackendConfig :NSObject

/// 接口ID
@property (strong,nonatomic,nonnull)  NSString*  backendConfigId;

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  baseGroupId;

/// 环境：test、preview、online
@property (strong,nonatomic,nonnull)  NSString*  environment;

/// 后端地址
@property (strong,nonatomic,nonnull)  NSString*  backendUrl;

/// 后端服务类型：mock、HTTP/HTTPS
@property (strong,nonatomic,nonnull)  NSString*  backendServiceType;

/// header参数列表
@property (strong,nonatomic,nonnull)  NSArray<SimpleParameter*>*  headerParams;

/// query参数列表
@property (strong,nonatomic,nonnull)  NSArray<SimpleParameter*>*  queryParams;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 发布日期，格式为毫秒级时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// 排序，赋值0时为默认的后端配置
@property (strong,nonatomic,nonnull)  NSNumber*  sort;

/// 排序，用于展示使用
@property (strong,nonatomic,nonnull)  NSNumber*  userSort;

/// vpc网关id
@property (strong,nonatomic,nonnull)  NSString*  jdsfId;

/// vpc后端地址
@property (strong,nonatomic,nonnull)  NSString*  jdsfParam;

/// vpc网关所属region
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegion;

/// vpc网关创建者的pin
@property (strong,nonatomic,nonnull)  NSString*  jdsfPin;


-(id) initWithBackendConfigId:(NSString*) backendConfigId
    baseGroupId:(NSString*)baseGroupId
    environment:(NSString*)environment
    backendUrl:(NSString*)backendUrl
    backendServiceType:(NSString*)backendServiceType
    headerParams:(NSArray<SimpleParameter*>*)headerParams
    queryParams:(NSArray<SimpleParameter*>*)queryParams
    descriptionValue:(NSString*)descriptionValue
    createTime:(NSNumber*)createTime
    sort:(NSNumber*)sort
    userSort:(NSNumber*)userSort
    jdsfId:(NSString*)jdsfId
    jdsfParam:(NSString*)jdsfParam
    jdsfRegion:(NSString*)jdsfRegion
    jdsfPin:(NSString*)jdsfPin;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface AccessKey :NSObject

/// Access Key id
@property (strong,nonatomic,nonnull)  NSString*  accessKeyId;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 密钥类型
@property (strong,nonatomic,nonnull)  NSString*  accessKeyType;

/// Access Key
@property (strong,nonatomic,nonnull)  NSString*  accessKeyValue;

/// 绑定分组
@property (strong,nonatomic,nonnull)  NSArray<BindGroups*>*  bindGroups;


-(id) initWithAccessKeyId:(NSString*) accessKeyId
    descriptionValue:(NSString*)descriptionValue
    accessKeyType:(NSString*)accessKeyType
    accessKeyValue:(NSString*)accessKeyValue
    bindGroups:(NSArray<BindGroups*>*)bindGroups;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SubscriptionKey :NSObject

/// subscription Key id
@property (strong,nonatomic,nonnull)  NSString*  subscriptionKeyId;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// subscription Key
@property (strong,nonatomic,nonnull)  NSString*  subscriptionKeyValue;

/// 密钥名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 密钥创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 绑定分组
@property (strong,nonatomic,nonnull)  NSArray<BindGroups*>*  bindGroups;


-(id) initWithSubscriptionKeyId:(NSString*) subscriptionKeyId
    descriptionValue:(NSString*)descriptionValue
    subscriptionKeyValue:(NSString*)subscriptionKeyValue
    name:(NSString*)name
    createTime:(NSString*)createTime
    bindGroups:(NSArray<BindGroups*>*)bindGroups;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Api :NSObject

/// apiId
@property (strong,nonatomic,nonnull)  NSString*  apiId;

/// 分组ID
@property (strong,nonatomic,nonnull)  NSString*  apiGroupId;

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  apiName;

/// 动作
@property (strong,nonatomic,nonnull)  NSString*  action;

/// 请求路径
@property (strong,nonatomic,nonnull)  NSString*  path;

/// 匹配模式：1.&quot;absolute&quot;(绝对匹配); 2.&quot;prefix&quot;（前缀匹配）;
@property (strong,nonatomic,nonnull)  NSString*  matchType;

/// 后端类型，为空或null时前端显示未设置
@property (strong,nonatomic,nonnull)  NSString*  backServiceType;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 请求参数列表
@property (strong,nonatomic,nonnull)  NSArray<Parameter*>*  reqParams;

/// 请求格式
@property (strong,nonatomic,nonnull)  NSString*  reqBody;

/// 返回格式
@property (strong,nonatomic,nonnull)  NSString*  resBody;

/// 请求格式类型,1:application/json,2:text/xml,3:其他
@property (strong,nonatomic,nonnull)  NSNumber*  reqBodyType;

/// 返回格式类型,1:application/json,2:text/xml,3:其他
@property (strong,nonatomic,nonnull)  NSNumber*  resBodyType;

/// api后端配置
@property (strong,nonatomic,nonnull)  ApiBackendConfig*  apiBackendConfig;

/// 应用类型ID,云鼎业务线专用
@property (strong,nonatomic,nonnull)  NSNumber*  hufuAppTypeId;

/// 当前分组版本，发布的环境信息
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  deploymentEnvironment;

/// 请求格式类型,当reqBodyType等于3时,使用该请求格式类型
@property (strong,nonatomic,nonnull)  NSString*  editableReqBodyType;

/// 响应格式类型,当resBodyType等于3时,使用该响应格式类型
@property (strong,nonatomic,nonnull)  NSString*  editableResBodyType;

/// waf状态，如：observe,deny,off
@property (strong,nonatomic,nonnull)  NSString*  wafStatus;


-(id) initWithApiId:(NSString*) apiId
    apiGroupId:(NSString*)apiGroupId
    apiName:(NSString*)apiName
    action:(NSString*)action
    path:(NSString*)path
    matchType:(NSString*)matchType
    backServiceType:(NSString*)backServiceType
    descriptionValue:(NSString*)descriptionValue
    reqParams:(NSArray<Parameter*>*)reqParams
    reqBody:(NSString*)reqBody
    resBody:(NSString*)resBody
    reqBodyType:(NSNumber*)reqBodyType
    resBodyType:(NSNumber*)resBodyType
    apiBackendConfig:(ApiBackendConfig*)apiBackendConfig
    hufuAppTypeId:(NSNumber*)hufuAppTypeId
    deploymentEnvironment:(NSArray<NSString*>*)deploymentEnvironment
    editableReqBodyType:(NSString*)editableReqBodyType
    editableResBodyType:(NSString*)editableResBodyType
    wafStatus:(NSString*)wafStatus;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

#endif /* ApigatewayModel_h */
